package pers.xiaojun.boot.module.system.controller.oauth2.vo;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

/**
 * 授权申请请求实体
 *
 * @author xiaojun
 * @since 2025-10-18
 */
@Schema(description = "授权申请请求实体")
@Data
public class OAuth2OpenReqVO {

    @Schema(
            description = "客户端ID（注册应用时分配的标识）",
            requiredMode = Schema.RequiredMode.REQUIRED,
            example = "xiaojun-memo"
    )
    private String clientId;

    @Schema(
            description = "响应类型",
            requiredMode = Schema.RequiredMode.REQUIRED,
            allowableValues = {"code", "refresh_token"},
            example = "code"
    )
    private String responseType;

    @Schema(
            description = "授权范围（多个权限用逗号分隔，如 user_public:read,user:write）",
            example = "user_public:read"
    )
    private String scope;

    @Schema(
            description = "授权成功后重定向的URI（需与注册时一致）",
            requiredMode = Schema.RequiredMode.REQUIRED,
            example = "http://127.0.0.1:8080/callback"
    )
    private String redirectUri;

}
